Setup VPS con cPanel — sartUP
Setup VPS con cPanel — sartUP
Questa guida descrive il setup diretto su VPS con cPanel (senza Docker né deploy).
1) Prerequisiti
- VPS con cPanel installato
- Accesso SSH e terminale cPanel
- PHP 8.2+, Composer 2.7+, MySQL 8.0+
- DNS del dominio
sartup.itpuntato all'IP del VPS - SSL/TLS gestito automaticamente da cPanel (AutoSSL o Let's Encrypt)
- Crea un Addon Domain o Subdomain per
sartup.it - Imposta document root su:
public_html/sartup/public(Laravel public folder) - Verifica che cPanel generi automaticamente il certificato SSL
- Crea database:
- Crea utente MySQL con password sicura
- Assegna tutti i privilegi al database
- Document Root:
- https://sartup.it → login page
- https://sartup.it/admin → dashboard (dopo login)
- Controlla errori in
2) Setup dominio in cPanel
3) Clona repository
Via SSH o File Manager di cPanel: ``bash
cd ~/public_html
git clone <repo-url> sartup
cd sartup
`4) Configurazione database
In cPanel → MySQL Databases:
cpanel_user_sartup
5) Environment
`bash
cd ~/public_html/sartup
cp .env.example .env
nano .env # oppure usa File Manager di cPanel
`Imposta almeno:
`env
APP_URL=https://sartup.it
DB_HOST=localhost
DB_DATABASE=cpanel_user_sartup
DB_USERNAME=cpanel_user_xxxxx
DB_PASSWORD=password_sicura
`6) Installazione dipendenze
`bash
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
`7) Permessi cartelle
`bash
chmod -R 775 storage bootstrap/cache
chown -R cpanel_user:cpanel_user storage bootstrap/cache
`8) Cron job (Laravel Scheduler)
In cPanel → Cron Jobs, aggiungi:
`
* cd ~/public_html/sartup && php artisan schedule:run >> /dev/null 2>&1
`9) Code (Queue Worker) - Opzionale
Se usi code Redis/database, configura un cron ogni 5 minuti:
`
/5 * cd ~/public_html/sartup && php artisan queue:work --stop-when-empty
`Oppure usa supervisord se disponibile sul VPS.
10) .htaccess per Laravel
Il file public/.htaccess di Laravel è già pronto. Verifica che cPanel usi il document root corretto:
public_html/sartup/public11) Aggiornamenti
`bash
cd ~/public_html/sartup
git pull
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:clear
php artisan cache:clear
`12) Verifica
storage/logs/laravel.log`Analisi Codice
Blocco 1 bash
cd ~/public_html
git clone <repo-url> sartup
cd sartup
Blocco 2 bash
cd ~/public_html/sartup
cp .env.example .env
nano .env # oppure usa File Manager di cPanel
Blocco 3 env
APP_URL=https://sartup.it
DB_HOST=localhost
DB_DATABASE=cpanel_user_sartup
DB_USERNAME=cpanel_user_xxxxx
DB_PASSWORD=password_sicura
Blocco 4 bash
composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
Blocco 5 bash
chmod -R 775 storage bootstrap/cache
chown -R cpanel_user:cpanel_user storage bootstrap/cache
Blocco 6
* * * * * cd ~/public_html/sartup && php artisan schedule:run >> /dev/null 2>&1
Blocco 7
*/5 * * * * cd ~/public_html/sartup && php artisan queue:work --stop-when-empty
Blocco 8 bash
cd ~/public_html/sartup
git pull
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:clear
php artisan cache:clear